package br.edu.curso.java.refatorar;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;







import br.edu.curso.java.VO.IVO;
import br.edu.curso.java.servlets.CadastrosServlet;


/**
 * Servlet implementation class TipoDeRequerimentoServlet
 */
@WebServlet("/ProfessorServlet")
public class ProfessorServlet extends CadastrosServlet {
	private static final long serialVersionUID = 1L;
       
	protected String getJSP() {
		return "/WEB-INF/CadastroDeProfessor.jsp";
	}
	protected String getTitulo() {
		return "Cadastros De Professores";
	}
	protected String getServlet() {
		return "ProfessorServlet";
	}
	
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ProfessorServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	protected List<IVO> listar() {
	
		ProfessorDAO professorDAO = new ProfessorDAO();
			
		return professorDAO.listar();
				
	}

	protected IVO getVO(HttpServletRequest request) {
		
		
		ProfessorVO professorVO = new ProfessorVO();
		
		try {
		professorVO.setCodigo(Integer.parseInt(request.getParameter("txtId")));
		professorVO.setNome(request.getParameter("txtNome"));
		professorVO.setCpf(request.getParameter("txtCPF"));
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
		Date dtNasc = sdf.parse(request.getParameter("txtDtNascimento"));
				
		professorVO.setDtNascimento(dtNasc);
		
		professorVO.setTelefone(request.getParameter("txtTelefone"));
		professorVO.setCelular(request.getParameter("txtCelular"));
		
		professorVO.setEndereco(request.getParameter("txtEndereco"));
		professorVO.setBairro(request.getParameter("txtBairro"));
		professorVO.setCidade(request.getParameter("txtCidade"));
		professorVO.setUf(request.getParameter("txtUF"));

		Date dtAdmin =  sdf.parse(request.getParameter("txtDtAdimissao"));
		
		professorVO.setDtadmissao(dtAdmin);
		professorVO.setSalario(Double.parseDouble(request.getParameter("txtSalario")));
		professorVO.setCarteira_trabalho(Integer.parseInt(request.getParameter("txtCarteiraDeTrabalho")));
		professorVO.setEspecialidade(request.getParameter("txtEspecialidades"));
		
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return (IVO) professorVO;
		
	}
	
	protected void gravarInclusao(IVO oVO) {
	
			ProfessorDAO professorDAO = new ProfessorDAO();
			
			professorDAO.incluir(oVO);
				
	}

	protected void gravarAlteracao(IVO oVO) {
		
		ProfessorDAO professorDAO = new ProfessorDAO();
		
		professorDAO.alterar(oVO);
			
}
	protected IVO getVO(Integer Id) {
		
		ProfessorVO obj = null;
				
			try {
			ProfessorDAO professorDAO = new ProfessorDAO();
			
			obj = professorDAO.retornar(Id);
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
			
		return (IVO) obj;
				
	}
	
	protected void consultar(HttpServletRequest request, HttpServletResponse response) {
		
		try {
			ProfessorDAO professorDAO = new ProfessorDAO();
			
			Integer Id = Integer.parseInt(request.getParameter("lstTipos"));

			ProfessorVO tipo = professorDAO.retornar(Id);
			
			request.setAttribute("tipo", tipo);
			request.setAttribute("funcao",  "consultar");
			
			RequestDispatcher rd = request.getRequestDispatcher("ProfessorCadastro.jsp");
			
			try {
				rd.forward(request, response);
			} catch (ServletException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
				
	}
	
	protected void gravarExclusao(Integer Id) {
		
			ProfessorDAO professorDAO = new ProfessorDAO();
			
			ProfessorVO oVO = professorDAO.retornar(Id);
			
			professorDAO.excluir(oVO);
			
	}
	
		

}
